﻿<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="36.00" TargetName="Trigger_Camera" TargetType="Routine" TargetSubType="RLL" ContainsContext="true" ExportDate="Tue Aug 20 12:41:28 2024" ExportOptions="References NoRawData L5KData DecoratedData Context Dependencies ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Context" Name="Overview_AI">
<DataTypes Use="Context">
</DataTypes>
<Modules Use="Context">
<Module Use="Reference" Name="OV20i">
</Module>
</Modules>
<Tags Use="Context">
</Tags>
<Programs Use="Context">
<Program Use="Context" Name="MainProgram">
<Tags Use="Context">
<Tag Name="OV_ERROR_DETECTED" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Description>
<![CDATA[Error during trigger or Acqusition]]>
</Description>
<Data Format="L5K">
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="OV_INSPECTION_FAIL" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Description>
<![CDATA[Use the tag for inspection FAIL]]>
</Description>
<Data Format="L5K">
<![CDATA[1]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</Data>
</Tag>
<Tag Name="OV_INSPECTION_PASS" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Description>
<![CDATA[Use the tag for inspection PASS]]>
</Description>
<Data Format="L5K">
<![CDATA[1]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</Data>
</Tag>
<Tag Name="OV_PB_Trigger" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Description>
<![CDATA[Simulates a Push Button Trigger]]>
</Description>
<Data Format="L5K">
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="OV_RESET_RESULTS" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Description>
<![CDATA[Reset the results]]>
</Description>
<Data Format="L5K">
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="Trigger_ONS" TagType="Base" DataType="BOOL" Dimensions="32" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[[2#0,2#0,2#1,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0,2#0
		,2#0,2#0,2#0,2#0,2#0]]]>
</Data>
<Data Format="Decorated">
<Array DataType="BOOL" Dimensions="32" Radix="Decimal">
<Element Index="[0]" Value="0"/>
<Element Index="[1]" Value="0"/>
<Element Index="[2]" Value="1"/>
<Element Index="[3]" Value="0"/>
<Element Index="[4]" Value="0"/>
<Element Index="[5]" Value="0"/>
<Element Index="[6]" Value="0"/>
<Element Index="[7]" Value="0"/>
<Element Index="[8]" Value="0"/>
<Element Index="[9]" Value="0"/>
<Element Index="[10]" Value="0"/>
<Element Index="[11]" Value="0"/>
<Element Index="[12]" Value="0"/>
<Element Index="[13]" Value="0"/>
<Element Index="[14]" Value="0"/>
<Element Index="[15]" Value="0"/>
<Element Index="[16]" Value="0"/>
<Element Index="[17]" Value="0"/>
<Element Index="[18]" Value="0"/>
<Element Index="[19]" Value="0"/>
<Element Index="[20]" Value="0"/>
<Element Index="[21]" Value="0"/>
<Element Index="[22]" Value="0"/>
<Element Index="[23]" Value="0"/>
<Element Index="[24]" Value="0"/>
<Element Index="[25]" Value="0"/>
<Element Index="[26]" Value="0"/>
<Element Index="[27]" Value="0"/>
<Element Index="[28]" Value="0"/>
<Element Index="[29]" Value="0"/>
<Element Index="[30]" Value="0"/>
<Element Index="[31]" Value="0"/>
</Array>
</Data>
</Tag>
</Tags>
<Routines Use="Context">
<Routine Use="Target" Name="Trigger_Camera" Type="RLL">
<RLLContent>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[PB_trigger, ONS and Trigger Ready bit will latch the trigger output from the camera
]]>
</Comment>
<Text>
<![CDATA[XIC(OV_PB_Trigger)ONS(Trigger_ONS[0])XIC(OV20i:I.Data[0].0)OTL(OV20i:O.Data[0].0);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[One the Trigger ACK is recieved, Trigger output will unlatch]]>
</Comment>
<Text>
<![CDATA[XIC(OV20i:I.Data[0].1)OTU(OV20i:O.Data[0].0);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[As the inspection results are available , the Inspection Pass bit will go true, unlatching the Failed output bit]]>
</Comment>
<Text>
<![CDATA[XIC(OV20i:I.Data[2].1)[XIO(OV20i:I.Data[2].2) ONS(Trigger_ONS[1]) OTL(OV_INSPECTION_FAIL) ,XIC(OV20i:I.Data[2].2) ONS(Trigger_ONS[2]) OTL(OV_INSPECTION_PASS) ,XIC(OV_RESET_RESULTS) OTU(OV_INSPECTION_FAIL) OTU(OV_INSPECTION_PASS) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[If there is a error during the trigger, the error detected will latch, and after the error is solved , will be unlatched
]]>
</Comment>
<Text>
<![CDATA[XIC(OV20i:I.Data[1].0)[XIC(OV20i:I.Data[1].0) OTL(OV_ERROR_DETECTED) ,XIO(OV20i:I.Data[1].0) OTU(OV_ERROR_DETECTED) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</Program>
</Programs>
</Controller>
</RSLogix5000Content>
